Repository navigation
feat: add explicit ToplingDB runtime selection - #3275
Conversation
40994eb to
7ee8766
Compare
7ee8766 to
dd9399d
Compare
bitflicker64
left a comment
There was a problem hiding this comment.
Blocking: yes. Summary: The new current-schema lookup in GraphIndexTransaction throws for vertices and edges whose label was deleted. Those left records can no longer be dropped, and a normal vertex with a left edge can no longer be dropped either. Both deletes worked before this PR. I found nothing else actionable in the launcher selection, the RocksDB provider check, the Topling truncate path, the cache lifetime change or the PD/Store shutdown rework. CI on this head is red, and both failures look unrelated: RateLimiterTest timing in server_memory, and dependency-review flagging the existing netty-handler 4.1.52 in hg-pd-dist. Evidence: static trace of StandardHugeGraph.vertexLabelOrNone/edgeLabelOrNone -> VertexLabel/EdgeLabel.undefined(graph, id); SchemaTransaction.getVertexLabel/getEdgeLabel return null for a missing id; GraphTransaction.removeVertex and prepareDeletions -> updateVertexIndex/updateEdgeIndex -> GraphIndexTransaction.indexLabelIds -> currentSchemaLabel E.checkArgument; GraphTransaction.warnLeftRecord shows these records are returned to callers.
bf666f8 to
51453a2
Compare
- align Netty, gRPC and protobuf runtime versions - preserve module dependency and test configuration - include packaged dependencies and matching licenses
- add explicit provider selection and compatibility checks - preserve standard RocksDB as the default - cover runtime selection and utility scanning
- verify the JNI package and EasyMigrate capability - install readable runtime assets outside standard libraries - provide shared preload selection and native configuration
- select one runtime for Server, init and dump commands - keep inherited configuration scoped to the selected component - cover launcher selection and upgrade contracts
- close session and database native resources reliably - preserve commits and clear reusable write batches - cover native session disposal and reuse
- retain shared caches and invalidation listeners across requests - dispose graph-scoped holders when the graph closes - protect reopened graphs from stale transaction leases
- release backend leases at request and task completion - preserve committed work and roll back unfinished writes - cover authentication and graph transaction cleanup
- retain nullable and label semantics across cleanup - refresh graph index schema identities consistently - cover vertex, edge and index operations
- coordinate scheduled services and Raft shutdown - release metadata and native database owners - cover PD lifecycle cleanup
- ship shared runtime helpers in PD and Store distributions - match native selection with component provider settings - preserve Store caller preloads across allocator paths
- drain heartbeat work before releasing Store owners - close partition and metric native resources - cover heartbeat and metric session cleanup
- close node services through the component lifecycle - avoid shutdown from locked state callbacks - preserve coordinated invalid-shard exit handling
- start the first reset after the configured interval - preserve the initial request window - cover fixed-window timing boundaries
- keep launcher regressions in the PD and Store workflow - align the PR merge fixture with the actual event SHA - use canonical ASF project references
- show prepare, configure, initialize and start in order - keep persistent paths and distributed component settings clear - use the approved illustration and a single README entry
22bff97 to
96f99de
Compare
Purpose of the PR
Make ToplingDB an optional storage engine while preserving HugeGraph APIs. Standard RocksDB remains the default.
How to switch
bash bin/prepare-topling.shfollowing the setup guide.rocksdb.provider=toplingin the standalone graph properties and exportTOPLINGDB_ROCKSDB_PROVIDER=topling.bash bin/init-store.sh, then runbash bin/start-hugegraph.sh.PD and Store use their own configuration and start scripts. ToplingDB offers performance-focused storage and flexible configuration.
Original preparation reference
Main Changes
Verifying these changes
Current CI results are shown in the checks below.
Does this PR potentially affect the following parts?
Documentation Status
Doc - TODODoc - Done: repository guide and website PR #510; coordinate both merges.Doc - No Need